package com.study.blogsearchproducer.service;

import com.study.blogsearchpojo.entity.Blog;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.delete.DeleteResponse;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.action.update.UpdateResponse;

import java.util.List;

public interface SearchService {
    /**
     * 判断索引库是否已经存在
     */
    boolean exists(String indexName);

    /**
     * 删除索引库
     */
    boolean dropIndex(String indexName);

    /**
     * 创建博客索引库（标题、内容、作者、博客id） （标题、内容、作者可以分词检索）
     */
    boolean createBlogIndex(String indexName);




    /**
     * 录入一条博客
     */
    IndexResponse saveOne(String indexName, Blog blog);

    /**
     * 批量录入博客
     */
    BulkResponse addBlogsInBatches(String indexName, List<Blog> blogList);
    /**
     * 判断一条是否存在
     */
    boolean existsOne(String indexName, String id);
    /**
     * 删除一条
     */
    DeleteResponse deleteOne(String indexName, String id);
    /**
     * 更新一条博客
     */
    UpdateResponse updateOne(String indexName, Blog blog);
    /**
     * 根据关键词  将标题、作者、内容与搜索词相关的博客检索出来
     */
    List<Blog> search(String indexName,String keyword,int pageNo);
}
